package cn.tedu.boot01.controller;

import cn.tedu.boot01.entity.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;

@Controller
public class ParamController {
    @RequestMapping("/p1")
    @ResponseBody
    public String p1(HttpServletRequest request){
        //从请求对象中获取传递过来的参数
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        return "接收到了参数:"+name+" age="+age;
    }
    @RequestMapping("/p2")
    @ResponseBody
    public String p2(String name,int age){
        //这种是SpringMVC框架中提供的接收参数的方式, 可以自动进行类型转换
        //如果类型转换出错时会报 400错误码
        return "接收到了参数:"+name+" age="+age;
    }

    @RequestMapping("/p3")
    @ResponseBody
    public String p3(Person person){
        //当参数列表处声明的是一个自定义对象时,SpringMVC框架
        //会通过反射得到对象的属性名称, 然后查找传递过来的参数是否包含
        //同名参数, 如果包含则调用set方法把接收到的参数赋值给person对象
        return person.toString();
    }

}
